var orderType=1;
var oTable ;

$(function() {

	// 1.初始化Table
	oTable = new TableInit();
	oTable.Init();

	// 2.初始化Button的点击事件
	var oButtonInit = new ButtonInit();
	oButtonInit.Init();
	
	$.fn.zTree.init($("#tree"), setting);
	zTree = $.fn.zTree.getZTreeObj("tree");



});

var ButtonInit = function() {
	var oInit = new Object();
	var postdata = {};

	oInit.Init = function() {
		// 初始化页面上面的按钮事件
		$("#btn_add").bind("click",btnIn);//入库
		$("#btn_minus").bind("click",btnOut);//出库
        $("#btn_add").hide();//入库
        $("#btn_minus").hide();//出库
		$("#btn_delete").bind("click",btnDele);//删除
		$("#btn_save").bind("click",orderEdit);//入库提交
		$("#btn_choose").bind("click",chooseTypeOpen);//类别选择按钮
		$("#btn_type_save").bind("click",chooseType);//类别选择确定
		$("#btn_query").bind("click",query);//查询按钮

		//针对不同角色进行按钮的显示隐藏，角色由后台传值到前台
        var roleStr = $("#roleStr").val();
        if(roleStr.indexOf("sale")>0){
            $("#btn_minus").show();
        }
        if(roleStr.indexOf("purchase")>0){
            $("#btn_add").show();
        }
	};

	return oInit;
};
//出入库  1：入库；2：出库
var btnIn = function(){
	modifyStorage(1);
}
var btnOut = function(){
	modifyStorage(2);
}
var modifyStorage = function(type){
	orderType = type;
	$('#productModal').modal('show');
	//清空类别数据
	$('#inputTypeName').val("");
	$('#inputTypeId').val("");
	$('#inputNumber').val("");
	$('#inputPrice').val("");
	if(type==1){
		$('#productModalLabel').html("采购入库");
		$('#inputPriceLabel').html("采购单价");
		$('#inputNumberLabel').html("采购数量");
    }else{
    	$('#productModalLabel').html("销售出库");
		$('#inputPriceLabel').html("销售单价");
		$('#inputNumberLabel').html("销售数量");
    }
}

//删除
var btnDele=function(){
	var list=$('#tb_departments').bootstrapTable("getAllSelections");
	if(list && list.length>0){
		for(var i=0;i<list.length;i++){
			console.log(list[i].id);
		}
	}
}

//类别选择窗口打开
var chooseTypeOpen = function(){
	  $('#secondmodal').modal("show");
}
var chooseType = function(){
	//如果没选择类别，不然点击确定
	if(gNode == null){
        Ewin.alert("请选择一个类别")
		return;
	}
	 $('#inputTypeName').val(gNode.name);
	 $('#inputTypeId').val(gNode.id);
	 $('#secondmodal').modal("hide");
}

//出入库单据提交
var orderEdit = function(){
	
	  
	 var typeId =  $('#inputTypeId').val();
	 var number = $('#inputNumber').val();
	 var price = $('#inputPrice').val();
	 if(typeId=="" || typeId==null ||price=="" ||price==null||number==""||number==null){
		 
		 return ;
	 }
	 $('#btn_save').attr('disabled',"true");
	 $.ajax({
			url:"/do/productOrder/edit",
			type:"post",
			data:{
				typeId:typeId,
				orderType:orderType,
				number:number,
				price:price
			},
			dataType:"json",
			success:function(result){
				$('#btn_save').removeAttr("disabled");
				if(result&&result.code==0){
                    Ewin.alert(result.msg);
				}
				$('#productModal').modal('hide');
			}
		})
}


var query = function(){
	 $("#tb_departments").bootstrapTable('refresh');
}

var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$('#tb_departments').bootstrapTable({
			url :  '/do/product/getAll', // 请求后台的URL（*）
			method : 'get', // 请求方式（*）
			contentType: "application/x-www-form-urlencoded",//post 必须制定类型，否则不能正常传值
			toolbar : '#toolbar', // 工具按钮用哪个容器
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortName:"id",//默认排序列
			sortable : true, // 是否启用排序
			sortOrder : "asc", // 排序方式
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 15, 20 ], // 可供选择的每页的行数（*）
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			showRefresh : true, // 是否显示刷新按钮
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			singleSelect : true,//开启单选，默认为多选
			uniqueId : "id", // 每一行的唯一标识，一般为主键列
			showToggle : false, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false, // 是否显示父子表
			columns : [ {
				checkbox : true
			}, {
				field : 'typeName',
				title : '产品',
				sortable:true,
				formatter:function(data){
					return data;
				}
			}, {
				field : 'total',
				title : '库存'
			} ]
		});
	};

	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		page = (params.offset / params.limit) + 1;
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            size : params.limit, // 页面大小
			page : page, // 页码
			typeName : $("#txt_search_name").val(),
			search : params.search,
			order : params.order,
			sort : params.sort
		};
		return temp;
	};
	
	return oTableInit;
};

// 产品类别树
var zTree;
//单选的时候，保存为全局变量
var gNode;
var setting = {
    async : {
        enable : true,
        url :"/do/type/getAll",
    },data: {
        simpleData: {
            enable: true,
            idKey: "id",
            pIdKey: "pid",
        },
    },
	callback : {
		onAsyncSuccess: zTreeOnAsyncSuccess ,
		onClick:zTreeOnClick
	}
};

function zTreeOnClick(event, treeId, treeNode) {
	//父级节点不允许选择
	if(!treeNode.isParent){
        gNode = treeNode;
	}else{
        gNode = null;
        Ewin.alert("请选择该类的下级产品");
	}


};

function zTreeOnAsyncSuccess(event, treeId, msg) { 
	//异步加载完后展开到第二级节点
	var nodes = zTree.getNodes();
    for (var i = 0; i < nodes.length; i++) { //设置节点展开
    	zTree.expandNode(nodes[i], true, false, true);
    }
}

